今天宠物迷的小编给各位宠物饲养爱好者分享java设置main参数的宠物知识,其中也会对java中main函数的参数args[ ]怎么使用?(main函数里的args)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
这个是运行程序前给它的参数。如果你在你程序要用这个参数的话就需要在运行前指定。比如java HelloWorld ceshi那么在HelloWorld的main方法里面 args就是{"ceshi"}多个的话用空格隔开
比如java HelloWorld ceshi ceshi1 ceshi2
那么那么在HelloWorld的main方法里面 args就是{"ceshi", "ceshi1", "ceshi2"}
也就是说你假如你的程序是这样的
public class HelloWorld{
public static void main(String[] args) {
System.out.println(args[0]);
}
}
然后你编译运行的时候这样运行java HelloWorld hello那么这个程序就会输出hello之所以是Stirng 是因为我们只能以字符串的形式输入名字的话随便取只要符合java规定就行
在Java程序设计语言中,每一个应用程序都必须包含一个main方法:
publicstaticvoid
main(String[]
args)
{}
main方法是程序的入口方法;
main方法的访问修饰符为public,不能省略,也不能定义为private和protected;
main方法必须是静态方法,使得JVM在调用main方法时不用实例化类;
main方法必须是无返回值(void)的方法,参数必须是字符串数组(String[]);
如果用命令的方式运行java程序,在运行命令后面添加参数值即可,例如:
普通java运行命令:java helloworld
加参数运行命令:java helloworld 张三
普通java运行命令:java -jar test.jar
加参数运行命令:java -jar test.jar 张三
张三就是第一个参数,第二个参数依次挂在后面即可,在mian函数的args参数中可以获取到的。
如果是eclipse这样的开发环境,应该可以找到配置程序启动参数的地方。例如:
elipse配置方式为:Run As-->Run Configurations->Arguments->Program arguments 中输入 参数值即可,空格隔开。
其他开发工具类似。
java中main方法引用带参数的方法只需通过创建对象来调用方法,并传入对应的参数值即可。
具体示例代码如下:
public class Demo1 {
private static String[] goodsName;
private static double[] goodsPrice;
private static int[] custNo;
private static int[] custScore;
private static String[] custBirth;
public static void main(String[] args) {
Demo3 demo = new Demo3();
demo.setData(goodsName, goodsPrice, custNo, custBirth, custScore);
}
}
主方法调用:
public class Demo3 {
private static String[] goodsName;
private static double[] goodsPrice;
private static int[] custNo;
private static int[] custScore;
private static String[] custBirth;
public static void setData(String[] goodsName1,double[] goodsPrice1,int[] custNo1,String[] custBirth1,int[] custScore1){
goodsName=goodsName1;
goodsPrice=goodsPrice1;
custNo=custNo1;
custScore=custScore1;
custBirth=custBirth1;
}
}
作用:
当你使用命令行的形式运行.class文件时,向你的类传递参数.
C:\>java YourClassName 参数1 [参数2 参数3 ....]
参数之间用一个空格作为间隔符.
String[] args 这个字符串数组是保存运行main函数时输入的参数的,例如main函数所在的类名为test 那么你在cmd运行 java test a b c 时,args[0] = a ,args[1]=b, args[2]=c 你就可以在你的程序中调用你输入的这些变量了。
args[]不就是那个字符串This is a simple Java program吗?
-------完全不是的,你理解不对。这样好了,你在运行的时候加个参数,比如 java test XX。然后在你的main函数里面加这段话:System.out.println("arg is"+args[0]),然后看看输出是什么?
是不是这个:
This is a simple Java program
arg is XX
在运行时输入java test xx yy zz,并且在你的main函数里面加这段话:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是什么?
是不是:
This is a simple Java program
arg is xx yy zz
现在你理解了吗。。。
如果没关系,为什么程序中去掉String args[]会出现错误?
--------之所以去掉会出错在于,不带String args[]的main函数和带String args[]的main函数,本质上已经不是同一个函数了,java 本身不存在不带String args[]的main函数,所以当然出错了。
例子:class Test{static public void main(String a[]){if(a.length>0){ for(int i=0;i<a.length;i++){System.out.println("传递进来的第"+i+“个参数是:"+a[i]);}}}}一个很简单的程序,这个就是输出所有传递给main的参数。传递方法为:首先编译上述类: javac Test.java运行时,带入参数 : java Test one two three 加粗部分是带入参数,这里传递进入了3个参数,参数与参数之间用空格分开
main函数也可以带参数。带参数main函数的定义格式如下:
void main(int argc, char *argv[])
{
... ...
}
argc和argv是main函数的形式参数。这两个形式参数的类型是系统规定的。如果main函数要带参数,就是这两个类型的参数;否则main函数就没有参数。变量名称argc和argv是常规的名称,当然也可以换成其他名称。
那么,实际参数是如何传递给main函数的argc和argv的呢?我们知道,C程序在编译和链接后,都生成一个exe文件,执行该exe文件时,可以直接执行;也可以在命令行下带参数执行,命令行执行的形式为:
可执行文件名称 参数1 参数2 ... ... 参数n
执行文件名称和参数、参数之间均使用空格隔开。例如,在linux下运行程序./a.out 1 2 ,可执行文件名称为./a.out,参数1为字符串1,参数2为2。
如果按照这种方法执行,命令行字符串将作为实际参数传递给main函数。具体为:
(1) 可执行文件名称和所有参数的个数之和传递给argc;所以上面的argc=3
(2) 可执行文件名称(包括路径名称)作为一个字符串,首地址被赋给argv[0],参数1也作为一个字符串,首地址被赋给argv[1],... ...依次类推。
作用:
当你使用命令行的形式运行.class文件时,向你的类传递参数.
C:\>java YourClassName 参数1 [参数2 参数3 ....]
参数之间用一个空格作为间隔符.
String[] args 这个字符串数组是保存运行main函数时输入的参数的,例如main函数所在的类名为test 那么你在cmd运行 java test a b c 时,args[0] = a ,args[1]=b, args[2]=c 你就可以在你的程序中调用你输入的这些变量了。
args[]不就是那个字符串This is a simple Java program吗?
-------完全不是的,你理解不对。这样好了,你在运行的时候加个参数,比如 java test XX。然后在你的main函数里面加这段话:System.out.println("arg is"+args[0]),然后看看输出是什么?
是不是这个:
This is a simple Java program
arg is XX
在运行时输入java test xx yy zz,并且在你的main函数里面加这段话:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是什么?
是不是:
This is a simple Java program
arg is xx yy zz
现在你理解了吗。。。
如果没关系,为什么程序中去掉String args[]会出现错误?
--------之所以去掉会出错在于,不带String args[]的main函数和带String args[]的main函数,本质上已经不是同一个函数了,java 本身不存在不带String args[]的main函数,所以当然出错了。
就是你所写的main方法中的String[] args这个参数。
在控制台打命令时输入的参数。例如:
>java HelloWorld.java John Smith ……
这行命令中的John就是arg[0],Smith就是arg[1],以此类推。
一般来说是用不到的,特别是一个相对大型的应用applet或者application
这个args的由来是这样的:你从控制台运行一个编译好的.class文件,需要命令为
java (入口类名) 参数1 参数2 ...
比如
源码:
// Test.java
public class Test {
public static void main(String[] args){
for(int i = 0; i < args.length; i++){
System.out.println(args[i]);
}
}
}
java Test 1 2 a
这样的话运行的时候JVM虚拟机会将主类后面的各输入转化为String[]数组(这里的数字是以字符串形式存在的)这样可以直接用。
输出就会是:
1
2
a
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“java中main函数的参数args[ ]怎么使用?”